package com.xie.leetcode.string;

//168. Excel表列名称
//        给你一个整数 columnNumber ，返回它在 Excel 表中相对应的列名称。
//
//        例如：
//
//        A -> 1
//        B -> 2
//        C -> 3
//        ...
//        Z -> 26
//        AA -> 27
//        AB -> 28
//        ...
//
//
//        示例 1：
//
//        输入：columnNumber = 1
//        输出："A"
//        示例 2：
//
//        输入：columnNumber = 28
//        输出："AB"
//        示例 3：
//
//        输入：columnNumber = 701
//        输出："ZY"
//        示例 4：
//
//        输入：columnNumber = 2147483647
//        输出："FXSHRXW"
//
//
//        提示：
//
//        1 <= columnNumber <= 2^31 - 1

/**
 * @author xiezhendong
 * @date 2022/1/18
 */
public class ConvertToTitle {

    public static void main(String[] args) {
        ConvertToTitle convertToTitle = new ConvertToTitle();
        System.out.println(convertToTitle.convertToTitle(1));
        System.out.println(convertToTitle.convertToTitle(28));
        System.out.println(convertToTitle.convertToTitle(701));
        System.out.println(convertToTitle.convertToTitle(2147483647));
    }

    public String convertToTitle(int columnNumber) {
        StringBuilder sb = new StringBuilder();
        while (columnNumber > 0) {
            columnNumber--;
            sb.append((char) (columnNumber % 26 + 'A'));
            columnNumber /= 26;
        }
        sb.reverse();
        return sb.toString();
    }
}
